Interactive programming guide

ABSTRACT

Techniques of providing an interactive programming guide with a personalized lineup are disclosed. In some embodiments, a profile is accessed, and a personalized lineup is determined based on the profile. The personalized lineup may comprise a corresponding media content identification assigned to each one of a plurality of sequential time slots, where each media content identification identifies media content for the corresponding time slot. A first interactive programming guide may be caused to be displayed on a first media content device associated with the profile, where the first interactive programming guide comprises the personalized lineup.

TECHNICAL FIELD

The present application relates generally to the technical field of dataprocessing, and, in various embodiments, to methods and systems ofproviding an interactive programming guide with a personalized lineup.

BACKGROUND

Currently, users of televisions and other media content devices mustnavigate their way through irrelevant content when browsing forsomething to watch. This process can be time consuming and sometimesfruitless, thereby resulting in a negative user experience.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments of the present disclosure are illustrated by way ofexample and not limitation in the figures of the accompanying drawings,in which like reference numbers indicate similar elements, and in which:

FIG. 1 is a block diagram illustrating an interactive programming guidesystem, in accordance with an example embodiment;

FIGS. 2A-2E illustrate an interactive programming guide being used on amedia content device, in accordance with an example embodiment;

FIG. 3 is a flowchart illustrating a method of providing an interactiveprogramming guide with a personalized lineup, in accordance with anexample embodiment;

FIG. 4 is a flowchart illustrating a method of modifying a personalizedlineup of an interactive programming guide, in accordance with anexample embodiment;

FIG. 5 is a flowchart illustrating another method of modifying apersonalized lineup of an interactive programming guide, in accordancewith an example embodiment;

FIG. 6 is a flowchart illustrating a method of receiving a request toassign a different media content identification to a time slot in apersonalized lineup, in accordance with an example embodiment;

FIGS. 7A-7C illustrate an interactive programming guide being used on asecond media content device, in accordance with an example embodiment;

FIG. 8 is a flowchart illustrating a method of providing an interactiveprogramming guide on a second media content device, in accordance withan example embodiment; and

FIG. 9 is a block diagram of an example computer system on whichmethodologies described herein may be executed, in accordance with anexample embodiment.

DETAILED DESCRIPTION

Example methods and systems of providing an interactive programmingguide with a personalized lineup are disclosed. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding of exampleembodiments. It will be evident, however, to one skilled in the art thatthe present embodiments may be practiced without these specific details.

As will be disclosed herein, an interactive programming guide can beprovided with a personalized lineup of media content relevant to aprofile. The personalized lineup can be made up of recommended mediacontent for current and upcoming time slots. The determination of whichmedia content to recommend within the personalized lineup of theinteractive programming guide can be based on a profile or multipleprofiles associated with one or multiple users, which can includedemographic information and/or a history of what media content has beenviewed by the one or multiple users. The recommended media content ofthe personalized lineup can be displayed in a way that emphasizes themost relevant media content, such as by displaying the most relevantmedia content in the most accessible location and in the most noticeableway, thereby making the browsing experience more efficient.

In some embodiments, a method comprises accessing a profile, anddetermining a personalized lineup based on the profile. The personalizedlineup may comprise a corresponding media content identificationassigned to each one of a plurality of sequential time slots. Each mediacontent identification can identify media content for the correspondingtime slot. This identified media content may be media content that hasbeen identified by a recommendation module as being the most relevantfor a specific corresponding time slot. The method can further comprisecausing a first interactive programming guide to be displayed on a firstmedia content device associated with the profile. The first interactiveprogramming guide may comprise the personalized lineup.

In some embodiments, the profile can be a profile of a user, a profileof a group of users (e.g., family members), or a profile of one or morespecified devices (e.g., the family's kitchen TV). In some embodiments,the method further comprises receiving an indication of a userassociated with the profile viewing additional media content, updatingthe profile based on the indication of the user viewing the additionalmedia content, modifying the personalized lineup based on the updatedprofile, and causing the modified personalized lineup to be displayed onthe first media content device. In some embodiments, the profile is aprofile associated with the first media content device, and the methodfurther comprises receiving an indication of additional media contentbeing viewed on the first media content device, updating the profilebased on the indication of the additional media content being viewed onthe first media content device, modifying the personalized lineup basedon the updated profile, and causing the modified personalized lineup tobe displayed on the first media content device.

In some embodiments, the method further comprises receiving, via thefirst interactive programming guide, a request to assign a firstdifferent media content identification to a first one of the time slots,and modifying the personalized lineup in response to the request toassign the first different media content identification to the first oneof the time slots. Modifying the personalized lineup may compriseassigning the first different media content identification to the firstone of the time slots, determining a second different media contentidentification to assign to a second one of the time slots based on theassigning of the first different media content identification to thefirst one of the time slots, and assigning the second different mediacontent identification to the second one of the time slots. The methodmay further comprise causing the modified personalized lineup to bedisplayed on the first media content device.

In some embodiments, receiving the request to assign the first differentmedia content identification to the first one of the time slotscomprises receiving a user selection of the first one of the time slotsof the personalized lineup, determining a plurality of media contentcategory options based on the profile and the user selection of thefirst one of the time slots, causing the plurality of media contentcategory options to be displayed on the first media content device,receiving a user selection of one of the media content category options,determining a plurality of media content options based on the profileand the user selection of the one of the media content category options,causing the plurality of media content options to be displayed on thefirst media content device, and receiving a user selection of one of themedia content options, the one of the media content optionscorresponding to the first different media content identification. Insome embodiments, based on the user selection and the recommendations,the time slot locations/durations can change as well, which posesanother degree of freedom that can be taken into account. In someembodiments, media content that cannot be time-shifted, such as due tothe real-time nature of the program (e.g., sports or news), can beprioritized over media content that can be time-shifted or sequenced atwill, such as content from Netflix® or YouTube®. Additionally, in someembodiments, different recommendations can be made based on what type ofdevice the media content is being recommended for. Accordingly, in someembodiments, the media content recommended is limited to only mediacontent that is available for viewing on the media content device forwhich the media content is being recommended. In one example, broadcastTV may be available for viewing on a user's television set, but not onthe user's tablet computer. In that example, the TV programs may beremoved from consideration for recommendation to the user when the useris using the tablet computer to watch media content.

In some embodiments, receiving the request to assign the first differentmedia content identification to the first one of the time slotscomprises receiving a user selection of the first one of the time slotsof the personalized lineup, determining a plurality of media contentoptions based on the profile and the user selection of the first one ofthe time slots, causing the plurality of media content options to bedisplayed on the media content device, and receiving a user selection ofone of the media content options, the one of the media content optionscorresponding to the first different media content identification.

In some embodiments, the first media content device comprises one of atelevision, a laptop computer, a desktop computer, a tablet computer,and a smartphone. In some embodiments, the media content comprises videocontent scheduled for broadcast. In some embodiments, the media contentalso includes time-shifted broadcast content, either on the serviceprovider side or on the client device side (e.g., Comcast catch-up TV,DVR, TiVo, etc.) In some embodiments, the video content comprises atleast one of an episode of a television program and a non-episodicmovie. In some embodiments, the media content may also include audio andradio broadcasts as well.

In some embodiments, the profile comprises a history of media contentviewed by the user(s) associated with the profile. In some embodiments,the profile further comprises demographic information about the user(s)associated with the profile. In some embodiments, the history may alsocontain information about the time or situation when certain mediacontent has been consumed (e.g., watched/viewed), such as the time ofday, day of week, season, during what meal of the day (e.g., duringdinner), whether it was viewed on-the-go (e.g., on a mobile device), orwhether it was viewed as a side activity or a main activity. In someembodiments, identification techniques (e.g., fingerprinting techniques)can be used to identify media content that has previously been consumed(e.g., viewed). This identification can be used to establish a link tothe media content's metadata. Recommendations can then be generatedbased on this metadata, and the resulting recommendations can betranslated into the recommended time slot sequence in the personalizedlineup.

In some embodiments, the method further comprises determining, based onthe profile, a plurality of relevant media content for a first period oftime from a plurality of available media content that are available tobe viewed during the first period of time, and causing a secondinteractive programming guide to be displayed on a second media contentdevice. The second interactive programming guide may compriseidentifications of the relevant media content for the first period oftime.

In some embodiments, the method further comprises determining acorresponding relevance measurement for each one of the plurality ofrelevant media content based on the profile, and causing the secondinteractive programming guide to be displayed comprises causing each oneof the identifications of the relevant media content to be displayedhaving a corresponding size that has a direct relationship with thecorresponding relevance measurement of the corresponding relevant mediacontent. In some embodiments, causing the second interactive programmingguide to be displayed comprises causing each one of the identificationsof the relevant media content to be displayed having a correspondingindicator, other than size, that has a direct relationship with thecorresponding relevance measurement of the corresponding relevant mediacontent. Examples of other such indicators include, but are not limitedto, color and positioning on the display screen.

In some embodiments, the method further comprises receiving, via thesecond interactive programming guide on the second media content device,a user selection of one of the identifications of relevant mediacontent, and causing media content corresponding to the selectedidentification of relevant media content to be displayed on the firstmedia content device in response to receiving the user selection of theidentification of relevant media content.

In some embodiments, the method further comprises receiving, via thesecond interactive programming guide on the second media content device,a user selection of one of the identifications of relevant mediacontent, and updating the profile based on the user selection of theidentification of relevant media content.

In some embodiments, the method further comprises receiving, via thesecond interactive programming guide on the second media content device,a user request to view identifications of relevant media content for asecond period of time, and determining, based on the updated profile, asecond plurality of relevant media content for the second period of timefrom a second plurality of available media content that are available tobe viewed during the second period of time. The method may furthercomprise causing identifications of the second plurality of relevantmedia content for the second period of time to be displayed on thesecond media content device.

The methods or embodiments disclosed herein may be implemented as acomputer system having one or more modules (e.g., hardware modules orsoftware modules). Such modules may be executed by one or moreprocessors of the computer system. The methods or embodiments disclosedherein may be embodied as instructions stored on a machine-readablemedium that, when executed by one or more processors, cause the one ormore processors to perform the instructions.

FIG. 1 is a block diagram illustrating an interactive programming guidesystem 100, in accordance with an example embodiment. In someembodiments, the interactive programming guide system 100 comprises arecommendation module 112 and one or more databases 114.

The recommendation module 112 may be configured to provide aninteractive programming guide to a media content device, such as firstmedia content device 120 or second media content device 140. In someembodiments, a media content device may comprise any electronic deviceconfigured to play media content, such as video content and/or audiocontent. Examples of media content devices include, but are not limitedto, televisions, laptop computers, desktop computers, tablet computers,smartphones, gaming devices, and/or other devices capable of receivingand presenting audio, video, and/or other multimedia content. Althoughmany of the examples discussed herein focus on video and TV mediacontent, the same or corresponding features and mechanisms disclosedherein can apply to audio media content and the combination ofterrestrial and satellite radio, online services, and locally availablemedia content, as well as correspondences between TV series, audiobooks, albums, and artist's catalogs.

In some embodiments, a media content device may employ a mediatuner/player device 130 configured to receive a stream of video and/oraudio content from a content provider (e.g., cable or satellitetelevision providers, web television providers, terrestrial or satelliteradio stations, online music services, etc.) and play the stream ofcontent by processing the stream and outputting information (e.g.,digital or analog) usable by a display of the media content device topresent or play back the video and/or audio content to a user employingthe media content device. Examples of media tuner/player devices 130include, but are not limited to, a set-top unit (e.g., a cable box) anda digital media player (e.g., an Apple TV® player or a Roku® player). Insome embodiments, the media tuner/player device 130 may be separate andexternal from the media content device that is employing its services.In other embodiments, the media tuner/player device 130 may beintegrated into the media content device that is employing its services.

In some embodiments, the first media content device 120 comprises asmart television. Accordingly, the first media content device 120 maycomprise one or more smart TV applications 122 (e.g., Netflix or Hulu)to enable the playing of Internet-based and on-demand media content.Other configurations are also within the scope of the presentdisclosure.

The devices and systems disclosed herein can communicate with otherdevices and systems in a variety of ways. In some embodiments, thedevices and systems can communicate via one or more networks. Examplesof networks that can be used include, but are not limited to, a wirednetwork, a wireless network (e.g., a mobile network or a Wi-Fi network),a radio or telecommunications network, a satellite network, a cablenetwork, and so on. In some embodiments, the network may include one ormore portions that constitute a private network (e.g., a cabletelevision network or a satellite radio network), a public network(e.g., over-the-air broadcast channels or the Internet), and so on.Other configurations and ways of communicating information betweendevices and systems are also within the scope of the present disclosure.

In some embodiments, first media content device 120 is configured toplay media content, such as television episodes, “webisodes,”user-generated content (e.g., videos on YouTube®, etc.), and movies.Referring to FIG. 2A, first media content device 120 comprises a displayscreen 210 on which to display media content 220. As previouslymentioned, recommendation module 112 may be configured to provide aninteractive programming guide to first media content device 120. In someembodiments, the interactive programming guide comprises a personalizedlineup 230, which can be displayed on the display screen 210. Thepersonalized lineup 230 can be made up of a plurality of time slots 232.In some embodiments, the time slots 232 are organized and displayedaccording to a time-based sequence (e.g., 8:00 pm-9:00 pm, then 9:00pm-9:30 pm, and then 9:30 pm-10:00 pm, and so on and so forth). In someembodiments, there are no gaps between the time periods of the timeslots 232 in the personalized lineup 230, such that the time period ofone time slot 232 ends at the same time as the beginning of a timeperiod for the next time slot 232 (e.g., 8:00 pm-9:00 pm, then 9:00pm-9:30 pm). In some embodiments, there are gaps between some of thetime periods of the time slots 232 in the personalized lineup 230 (e.g.,8:00 pm-9:00 pm, then 9:30 pm-10:00 pm). In some embodiments, each timeslot duration can be dependent on the duration of the media contentrecommended for that time slot by the recommendation module 112. Thistime slot duration can be used by the recommendation module 112 toinfluence the start times and duration times of future subsequent timeslots.

Each time slot 232 can comprise an indication 233 of the time period towhich it corresponds, as well as corresponding media contentidentification information that identifies media content assigned to thecorresponding time slot 232 in the personalized lineup 230. The mediacontent identification information may comprise a name/title 234 of themedia content, an episode identification 235, and/or an image 236 (e.g.,show/movie logo) corresponding to the media content. Although not shown,each time slot 232 can also comprise an indication of the source (e.g.,what television channel or what web-based source) of the correspondingmedia content. The identified media content can be media content that isscheduled for broadcast during the corresponding time slot 232 (e.g.,television show A scheduled for broadcast during the 8:00 pm-9:00 pmtime slot, television show B scheduled for broadcast during the 9:00pm-9:30 pm time slot, television show C scheduled for broadcast duringthe 9:30 pm-10:00 pm time slot, and so on and so forth).

The recommendation module 112 may be configured to determine thepersonalized lineup 230 based on a user profile 116. User profiles 116can be stored in one or more databases 114 of the interactiveprogramming guide system 100 (FIG. 1). Each user profile 116 can beassociated with and correspond to a particular media content device, aparticular person, and/or a particular group of people. For example, oneuser profile 116 may correspond to a specific television set in afamily's living room. In another example, another user profile 116 maycorrespond to one specific member of the family, no matter what mediacontent device he or she is using. In this respect, the terms “userprofile” and “profile of a user” can refer to a profile of a specifieduser, a profile of a specified group of specified users (e.g., familymembers), or a profile of one or more specified devices (e.g., thefamily's kitchen TV), and should not be interpreted to be limited toonly a profile that belongs to a single specific user unless explicitlyrecited in the claims.

Furthermore, each user profile 116 can comprise a variety ofinformation. In some embodiments, user profiles 116 comprise demographicinformation (e.g., age, gender, residence location, income, etc.). Thisinformation can be obtained via a registration process when firstemploying the services of the interactive programming guide system 100,or at other times and in other ways as well.

Each user profile 116 can comprise a history of what media content hasbeen viewed and/or requested on a media content device corresponding tothe profile 116 and/or what media content has been viewed and/orrequested by a person corresponding to the profile 116. It iscontemplated that multiple media content devices can be associated withand correspond to a single user profile 116. In one example, a family'suser profile can include a history of the media content viewed and/orrequested on televisions in the family's living room, kitchen, parents'bedroom, and children's bedrooms. In another example, each televisionset used by the family can be associated with and correspond to its owndedicated profile 116. In some embodiments, the recommendation module112 can receive an indication of a user viewing additional mediacontent, and then update the corresponding profile 116 of the user basedon that indication. The recommendation module 112 can use theaccumulated viewing history of the user(s) to create and modify thepersonalized lineup 230.

In some embodiments, the interactive programming guide system 100 can beseparate and distinct from the first media content device 120 or fromany media content device (e.g., second media content device 140). Insome embodiments, the interactive programming guide system 100 can beintegrated into the first media content device 120 or into any mediacontent device (e.g., second media content device 140). In someembodiments, certain components (e.g., database 114) of the interactiveprogramming guide system 100 can be separate and distinct from the firstmedia content device 120 or from any media content device (e.g., secondmedia content device 140), while other components (e.g., recommendationmodule 112) of the interactive programming guide system 100 can beintegrated into the first media content device 120 or any media contentdevice (e.g., second media content device 140). Other configurations arealso within the scope of the present disclosure.

In some embodiments, the recommendation module 112 is configured toanalyze the viewing history of the profile 116 and detect patterns inthe viewing habits of the corresponding user(s), thereby enabling therecommendation module 112 to configure a personalized lineup 230 thatidentifies media content that the user(s) will most likely want to watchat particular times. In some embodiments, the recommendation module 112uses a threshold amount of viewing time to determine whether a user'sviewing of media content should be used in determining the personalizedlineup 230. For example, the recommendation module 112 may require thatat least fifty percent of a television show or movie be watched by theuser(s) in order for the viewing of that television show or movie to beincluded in the corresponding profile 116 and/or used in determining thepersonalized lineup 230.

The recommendation module 112 can also use other information thatindicates what media content will be most relevant to the user(s),including, but not limited to, social activity signals obtained fromsocial network services (e.g., a user “liking” a TV show on Facebook®)and a purchase history of products corresponding to media content (e.g.,a user buying the first season of a TV show on DVD or as an electronicdownload).

The recommendation module 112 can interpret different information indifferent ways and learn to draw certain conclusions for a profile 116based on the particulars of the information. In one example, a user'sviewing history may reflect that the user has seen every episode of a TVshow that has been broadcast so far. The recommendation module 112 maythen use this information to conclude that the user has an interest inviewing this TV show, and therefore may be more likely to recommendepisodes of this TV show in the personalized lineup 230 for the user.However, the recommendation module 112 may assume that the user does notwant to view any episodes that he or she has already seen. Accordingly,the recommendation module 112 may downgrade an episode's likelihood ofbeing included in the personalized lineup 230 based on the user'sviewing history indicating that the user has already seen thatparticular episode. However, the viewing history of the user may reflectthat he or she has a history of viewing the same episode of that TV showmultiple times, which the recommendation module 112 may interpret to bean indication that the user likes watching the same episode of that TVshow multiple times. Accordingly, the recommendation module 112 may thenuse that information to increase the likelihood of including arecommendation of that TV show in the personalized lineup 230 for theuser. This decision logic can also be correlated with user age and/orthe type of TV show (or other media content). For example, children aremuch more likely to view the same episode of a TV show multiple timesthan adults. Accordingly, the recommendation module 112 may take intoaccount this and other factors when determining what media content torecommend. Additionally, the recommendation module 112 may alsoprioritize media content that is determined to be catch-up mediacontent. Catch-up media content may be media content that is ordinarilyviewed before other media content but that the user has not viewed yet.For example, if a user has not seen the previous episode of a TV show,then this previous episode may be prioritized over new or subsequentepisode of the same TV show, or over other shows.

In another example, the fact that a user has purchased a specific seasonof a TV show on DVD can be interpreted by the recommendation module 112as an indication that the user has an interest in that TV show, therebyincreasing the likelihood that episodes of that TV show will be includedin the personalized lineup 230 for the user. However, the recommendationmodule 112 may determine that it should not recommend episodes of thatTV show that are part of the season of the DVD purchased by the user onthe principle that it should not recommend TV episodes that the user hasin his or her possession to view at any time he or she desires. But, aspreviously mentioned, the recommendation module 112 may interpret theuser's viewing history as indicating that the user enjoys watching thesame episodes of the TV show multiple times, and therefore increase thelikelihood of episodes of that season purchased on DVD by the user beingincluded in the personalized lineup 230.

Variations on these kinds of upgrading and downgrading of media contentfor inclusion in the personalized lineup 230 are within the scope of thepresent disclosure. In some embodiments, the upgrading/increasing anddowngrading/decreasing likelihood of media content being included in thepersonalized lineup 230 can be based on a relevance measurement system,where relevance measurements (e.g., scores) are determined for eachmedia content for a particular time slot 232 (e.g., each TV episode ormovie scheduled for broadcast during a particular time period). Therelevance measurements can be determined based on the information andlogic discussed above, as well as other information and logic. Eachmedia content can then be ranked for a particular time slot 232 based onthese relevance measurements. The recommendation module 112 can thenselect the highest ranking media content for a particular time period tobe recommended for the corresponding time slot 232 in the personalizedlineup 230. Other configurations are also within the scope of thepresent disclosure.

In some embodiments, the recommendation module 112 may also take intoaccount how time sensitive certain media content is in determiningwhether to recommend it or how to affect its relevancy measurement. Forexample, content that is unique in time, such as major sporting events(e.g., the Olympics, Super Bowel, etc.) and news events, may have theirrelevancy measurements additionally increased based on their timesensitive nature.

The personalized lineup 230 can be interactive, allowing the user tochange what media content 220 is currently being displayed by makingselections for the corresponding time slot 232 on the personalizedlineup 230. The user's interactions with the personalized lineup 230 canbe used as a feedback loop to the interactive programming guide system100 and recommendation module 112, where they may be used to affectrecommendations of media content in the personalized lineup 230. Forexample, a user selection to watch certain media content can cause thereplaced media content in the personalized lineup 230 to be downgradedin future considerations of relevancy by the recommendation module 112,while the selected media content can be upgraded in futureconsiderations of relevancy by the recommendation module 112. Referringback to FIG. 2A, first media content device 120 may currently bedisplaying Episode 42 of TV Show A as the media content 220. If the userwants to watch different media content, then the user can select thecorresponding time slot 232, which in this example would be the currenttime slot 232 of 8:00 pm-9:00 pm. The user can interact with thepersonalized lineup 230 and other parts of the interactive programmingguide using a remote control. In some embodiments, another media contentdevice, such as a tablet computer, can be used as a remote control.

In FIG. 2B, the user has selected the current time slot 232. In responseto this selection, the recommendation module 112 can cause the displayof a drawer 240 of media content category options 242 from which theuser can select. The recommendation module 112 can determine which mediacontent category options 242 to display to the user either prior to orin response to the user's selection of the time slot 232. Thedetermination of which media content category options 242 to display canbe based on a corresponding profile 116. For example, the correspondingprofile 116 may indicate that the user's favorite categories of mediacontent are, in descending order, Science Fiction, Sitcoms, AnimatedComedies, Crime Dramas, and Sports, based on an analysis of the user'sviewing history, as well as other information in the correspondingprofile 116. As a result, these categories may be displayed as mediacontent category options 242.

In some embodiments, the corresponding profile 116 may indicate that auser prefers certain categories at certain times of the day and othercategories at other times of the day. For example, the categories ofScience Fiction, Sitcoms, Animated Comedies, Crime Dramas, and Sportsmay be the most relevant to the user for the 8:00 pm-9:00 pm time slot232, but not for the 9:00 pm-9:30 pm time slot 232. Additionally, thecorresponding profile 116 may indicate that a user prefers to watchcertain categories of media content after watching a particular categoryof media content. For example, the user's viewing history may show thatthe user typically watches news programs just after watching a sitcom.The recommendation module 112 can use these indications to determine themost relevant media content category options 242, as well as the mostrelevant media content, to recommend to the user. In some embodiments,the recommendation module 112 can determine a relevance measurement foreach media content category option 242 for a time slot 232, rank themedia content category options 242 for the time slot 232, and determinewhich media content category options 242 to display based on theranking, similar to the previously discussed determination of what mediacontent to recommend.

In some embodiments, the recommendation module 112 can select the mediacontent category options 242 from a plurality of pre-defined mediacontent categories. In some embodiments, the recommendation module 112is configured to enable users to create their own customized categories.In this respect, the media content category options 242 may include notonly traditional categories, such as Science Fiction, Drama, and Sports,but also non-traditional categories. Examples of such non-traditionalcategories may include, but are not limited to, moods (e.g., happy, sad,stressed, etc.), weather (e.g., sunny, cloudy, rainy, etc.), andlocations depicted in the media content (e.g., city, suburbs,countryside, wilderness, etc.). Other types of categories may includethe sources of media content (e.g., TV cable provider, Hulu®, Netflix®,iTunes®, etc.), the price/quality of the content (e.g., HD contentversus SD content, free content vs. rentable content versus buyablecontent), and content that is unique in time, such as major sportingevents (e.g., the Olympics, Super Bowel, etc.) and news events. Othertypes of categories are also within the scope of the present disclosure.

Although the media content category options 242 are shown as beingpresented within a drawer 240 in FIG. 2B, it is contemplated that othergraphical user interface elements and configurations are also within thescope of the present disclosure. In some embodiments, the displayposition of each media content category option 242 can be determinedbased on how relevant it is determined to be (e.g., by theircorresponding relevance measurements). For example, the media contentcategory option 242 determined to be the most relevant (e.g., ScienceFiction in FIG. 2B) can be displayed as the closest media contentcategory option 242 to the time slot 232 to which it corresponds, andthe media content category option 242 determined to be the second mostrelevant (e.g., Sitcoms in FIG. 2B) can be displayed as the secondclosest media content category option 242 to the time slot 232 to whichit corresponds, and so on and so forth, thereby making the most relevantmedia content category options 242 the most prominently displayed andreducing the distance the user must scan in order to find what is mostrelevant. As a result, the user experience can be made more efficient,and thus more enjoyable.

As seen in FIG. 2C, the user can select one of the media contentcategory options 242. In response to this selection, the recommendationmodule 112 can cause the display of a drawer 250 of media contentoptions 252 from which the user can select. Each media content option252 can comprise media content identification information thatidentifies media content that corresponds to the selected media contentcategory option 242 for the corresponding selected time slot 232. Themedia content identification information may comprise a name/title 254of the media content and/or an image 256 (e.g., show/movie logo)corresponding to the media content. Other media content identificationinformation can be provided as well, including, but not limited to, anepisode identification and an indication of the source (e.g., whattelevision channel or what web-based source) of the corresponding mediacontent.

The recommendation module 112 can determine which media content options252 to display to the user either prior to or in response to the user'sselection of the media content category option 242. The determination ofwhich media content options 252 to display can be based on acorresponding profile 116, as previously discussed.

Although the media content options 252 are shown as being presentedwithin a drawer 250 in FIG. 2C, it is contemplated that other graphicaluser interface elements and configurations are also within the scope ofthe present disclosure. In some embodiments, the display position ofeach media content option 252 can be determined based on how relevant itis determined to be (e.g., by their corresponding relevancemeasurements). For example, the media content option 252 determined tobe the most relevant (e.g., TV Show D in FIG. 2C) can be displayed asthe closest media content option 252 to the selected media contentcategory option 242 (e.g., Sitcoms in FIG. 2C), and the media contentoption 252 determined to be the second most relevant (e.g., TV Show E inFIG. 2C) can be displayed as the second closest media content option 252to the selected media content category option 242 (e.g., Sitcoms in FIG.2C), and so on and so forth, thereby making the most relevant mediacontent options 252 the most prominently displayed and reducing thedistance the user must scan in order to find what is most relevant. As aresult, the user experience can be made more efficient, and thus moreenjoyable.

In some embodiments, the media content options 252 may be presented inresponse to a selection of a corresponding time slot 232, without anypresentation or selection of media content category options 242. In someembodiments, the media content options 252 may be displayed in a drawer240 or other graphical user interface element extending directly fromthe corresponding time slot 232. Other configurations are also withinthe scope of the present disclosure.

As seen in FIG. 2D, the user can select one of the media content options252. In response to this selection, the recommendation module 112 cancause the display of a pop-up window 260. The pop-up window 260 maycomprise information about the media content corresponding to theselected media content option 252. For example, the pop-up window 260may comprise an indication 263 of the time period to which the selectedmedia content option 252 corresponds, as well as corresponding mediacontent identification information that identifies the selected mediacontent option 252. The media content identification information maycomprise a name/title 264 of the media content, an episodeidentification 265, and/or an image 266 (e.g., show/movie logo)corresponding to the media content. The pop-up window 260 may alsocomprise a plot description 268 of the selected media content option252. Although not shown, the media content identification informationcan also comprise an indication of the source (e.g., what televisionchannel or what web-based source) of the corresponding media contentoption 252. It is contemplated that other information and configurationsare also within the scope of the present disclosure.

In some embodiments, the user may select a media content option 252 forcurrent viewing in the current time slot 232. As seen in FIG. 2E, thisselection can result in a change of the media content 220 beingdisplayed on the media content device 120 from the previously viewedmedia content 220 of FIGS. 2A-2D to the newly selected media content 220of FIG. 2E. Furthermore, the personalized lineup 230 can be updated toreflect this selection. In addition to modifying the media contentidentification information for the current time slot 232 (e.g., from8:00 pm-9:00 pm in FIG. 2D to 8:00 pm-8:30 pm in FIG. 2E) in thepersonalized lineup 230, the recommendation module 112 can modify thepersonalized lineup 230 by adjusting subsequent time slots 232 (e.g.,the time slots from 8:30 pm on in FIG. 2E) based on the selection andviewing of the media content option 252. In some embodiments, therecommendation module 112 can use this selection to immediately updatethe corresponding profile 116 and determine recommendations for thesubsequent time slots 232. In some embodiments, the recommendationmodule 112 takes into account the new end time of the newly selectedmedia content currently being viewed in determining what media contentto recommend for subsequent time slots. For example, in FIGS. 2A-2D, TVShow A was currently being viewed. TV Show A had an end time of 9:00 pm.As a result, the recommendation module 112 recommended content for the9:00 pm time slot 232 that began at 9:00 pm. When the user selected tocurrently watch TV Show E in FIG. 2E, the recommendation module 112 tookinto account the fact that TV Show E has an end time of 8:30 pm, andincreased the relevancy of media content that has a start time at 8:30pm, such as Movie F with a scheduled broadcast time period of 8:30pm-10:00 pm in FIG. 2E. The recommendation module 112 can make thesetypes of time-based and on-the-fly real-time scheduling considerationsin determining recommendations of media content for the personalizedlineup 230.

In some embodiments, the recommendation module 112 may treat the timeslots as being fluid and make determinations based on the start times ofavailable media content. In this respect, the recommendation module 112may greedily select the best media content and fill any open time slotswith the greedily selected media content. Accordingly, the time slotscan be of any duration and have any start time (within the bounds of thecurrent start time). The recommendation module 112 may also take intoaccount the amount of time (overlap) available to be watched of themedia content being considered. For example, if a first media content isextremely relevant but is or will be 75% finished for the time slotbeing considered, while a second media content is a little bit lessrelevant but is or will be only 5% finished for the time slot beingconsidered, then the second media content may be selected based on thesetiming considerations, despite the first media content being morerelevant to the user.

In some embodiments, the user can use the same selection featuresdiscussed above to select media content options 252 for future timeslots. For example, in FIG. 2B, the user could have selected the timeslot 232 corresponding to the 9:00 pm-9:30 pm time period instead of thetime slot 232 corresponding to the 8:00 pm-9:00 pm time period in orderto view media content options 252 for the 9:00 pm-9:30 pm time periodand select one of the media content options 252 to the correspondingtime slot 232 for that time period. In response to such selections toassign different media content options 252 to future time slots 232, therecommendation module 112 can update the personalized lineup 230 toreflect that selection, as well as adjust future recommendations basedon the new time considerations and the new indications of interest inadditional media content.

FIG. 3 is a flowchart illustrating a method 300 of providing aninteractive programming guide with a personalized lineup, in accordancewith an example embodiment. The operations of method 300 may beperformed by a system or modules of a system (e.g., interactiveprogramming guide system 100 or recommendation module 112 in FIG. 1). Atoperation 310, a profile 116 of a user can be accessed. At operation320, a personalized lineup 230 can be determined based on the profile116 of the user. The personalized lineup 230 may comprise acorresponding media content identification assigned to each one of aplurality of sequential time slots 232. Each media contentidentification can identify media content for the corresponding timeslot 232. At operation 330, a first interactive programming guide can becaused to be displayed on a first media content device 120 associatedwith the user. The first interactive programming guide may comprise thepersonalized lineup 230. It is contemplated that the operations ofmethod 300 may incorporate any of the other features disclosed herein.

FIG. 4 is a flowchart illustrating a method 400 of modifying apersonalized lineup of an interactive programming guide, in accordancewith an example embodiment. The operations of method 400 may beperformed by a system or modules of a system (e.g., interactiveprogramming guide system 100 or recommendation module 112 in FIG. 1). Atoperation 410, an indication of the user viewing additional mediacontent can be received. At operation 420, the profile 116 of the usercan be updated based on the indication of the user viewing theadditional media content. At operation 430, the personalized lineup 230can be modified based on the updated profile 116. At operation 440, themodified personalized lineup 230 can be caused to be displayed on thefirst media content device 120. It is contemplated that the operationsof method 400 may incorporate any of the other features disclosedherein.

FIG. 5 is a flowchart illustrating another method of modifying apersonalized lineup of an interactive programming guide, in accordancewith an example embodiment. The operations of method 500 may beperformed by a system or modules of a system (e.g., interactiveprogramming guide system 100 or recommendation module 112 in FIG. 1). Atoperation 510, a request to assign a first different media contentidentification to a first one of the time slots 232 can be received viathe first interactive programming guide. At operation 520, thepersonalized lineup 230 can be modified in response to the request toassign the first different media content identification to the first oneof the time slots 232. Modifying the personalized lineup 230 maycomprise assigning the first different media content identification tothe first one of the time slots 232, determining a second differentmedia content identification to assign to a second one of the time slots232 based on the assigning of the first different media contentidentification to the first one of the time slots 232, and assigning thesecond different media content identification to the second one of thetime slots 232. At operation 530, the modified personalized lineup 230can be caused to be displayed on the first media content device 120. Itis contemplated that the operations of method 500 may incorporate any ofthe other features disclosed herein.

FIG. 6 is a flowchart illustrating a method of receiving a request toassign a different media content identification to a time slot in apersonalized lineup, in accordance with an example embodiment. Theoperations of method 600 may be performed by a system or modules of asystem (e.g., interactive programming guide system 100 or recommendationmodule 112 in FIG. 1). At operation 610, a user selection of the firstone of the time slots 232 of the personalized lineup 230 can bereceived. At operation 620, a plurality of media content categoryoptions 242 can be determined based on the profile 116 of the user andthe user selection of the first one of the time slots 232. At operation630, the plurality of media content category options 242 can be causedto be displayed on the first media content device 120. At operation 640,a user selection of one of the media content category options 242 can bereceived. At operation 650, a plurality of media content options 252 canbe determined based on the profile 116 of the user and the userselection of the one of the media content category options 242. Atoperation 660, the plurality of media content options 252 can be causedto be displayed on the first media content device 120. At operation 670,a user selection of one of the media content options 252 can bereceived. The selected media content option 252 can correspond to thefirst different media content identification that was previouslydiscussed. It is contemplated that the operations of method 600 mayincorporate any of the other features disclosed herein.

In some embodiments, the interactive programming guide can be providedon one or more other media content devices, such as second media contentdevice 140, while media content 220 is being viewed on the first mediacontent device 120. FIGS. 7A-7C illustrate an interactive programmingguide 730 being provided and used on second media content device 140, inaccordance with an example embodiment. In some embodiments, the secondmedia content device 140 can be used as a remote control for the firstmedia content device 120. Accordingly, the second media content device140 can communicate with components of the interactive programming guidesystem 100, first media content device 120, and/or media tuner/playerdevice(s) 130.

The second media content device 140 comprises a display screen 710 onwhich to display an interactive programming guide 730. Since the secondmedia content device 140 can be used as a remote control, as opposed tothe main device on which media content is being viewed, the interactiveprogramming guide 730 can be configured to display more information thanthe interactive programming guide on the first media content device 120,since screen space on the second media content device 140 does not haveto be shared with the media content 220 being watched.

As seen in FIG. 7A, the recommendation module 112 can determine mediacontent category options 732 for display in the interactive programmingguide 730 on the second media content device 140. The same determinationprocess discussed above with respect to the determination of mediacontent category options 242 can be used in the determination of mediacontent category options 732. As seen in FIG. 7A, given the additionalunused display space on second media content device 140, the interactiveprogramming guide 730 may provide more media content category options732. For example, whereas the media content category options 242 in FIG.2B only included Science Fiction, Sitcoms, Animated Comedies, CrimeDramas, and Sports, the media content category options 732 in FIG. 7Amay further include News and Dark (e.g., as in dark mood themed mediacontent).

Furthermore, given the additional unused display space on second mediacontent device 140, the interactive programming guide 730 may displaythe media content category options 732 with corresponding sizes thathave a direct relationship to how relevant they are to the user. In someembodiments, the recommendation module 112 can use the previouslydiscussed relevance measurements to determine how prominently displayed(e.g., how large) each media content category option 732 should be. Forexample, in FIG. 7A, the most relevant media content category option 732(Science Fiction) can be displayed with the largest size, the secondmost relevant media content category option 732 (Sitcoms) can bedisplayed with the second largest size, the third most relevant mediacontent category option 732 (Animated Comedies) can be displayed withthe third largest size, the fourth most relevant media content categoryoption 732 (Crime Dramas) can be displayed with the fourth largest size,and so on and so forth. In some embodiments, the interactive programmingguide 730 may cause each one of the identifications of media contentcategory options 732 to be displayed having a corresponding indicator,other than size, that has a direct relationship with the correspondingrelevance measurement of the corresponding media content category option732. Examples of other such indicators include, but are not limited to,color and positioning on the display screen.

As seen in FIG. 7B, in response to the user selecting one of the mediacontent category options 732 (e.g., Sitcoms), the recommendation module112 can provide media content options 742 for display in the interactiveprogramming guide 730 on the second media content device 140. The samedetermination process discussed above with respect to the determinationof media content options 252 can be used in the determination of mediacontent options 742.

Similar to the media content category options 732, given the additionalunused display space on second media content device 140, the interactiveprogramming guide 730 may provide more media content options 742 on thesecond media content device 140 than the media content options 252provided on the first media content device 120. Furthermore, similar tothe display of the media content category options 732 discussed above,the interactive programming guide 730 may display the media contentoptions 742 with corresponding sizes that have a direct relationship tohow relevant they are to the user. In some embodiments, therecommendation module 112 can use the previously discussed relevancemeasurements to determine how prominently displayed (e.g., how large)each media content option 742 should be. For example, in FIG. 7B, themost relevant media content option 742 (TV Show D) can be displayed withthe largest size, the second most relevant media content option 742 (TVShow E) can be displayed with the second largest size, the third mostrelevant media content option 742 (TV Show G) can be displayed with thethird largest size, and so on and so forth. In some embodiments, theinteractive programming guide 730 may cause each one of theidentifications of media content options 742 to be displayed having acorresponding indicator, other than size, that has a direct relationshipwith the corresponding relevance measurement of the corresponding mediacontent option 742. Examples of other such indicators include, but arenot limited to, color and positioning on the display screen.

Each media content option 742 may comprise information about thecorresponding media content. For example, media content options 742 maycomprise an indication 743 of the time period to which the selectedmedia content option 742 corresponds, as well as corresponding mediacontent identification information that identifies the selected mediacontent option 742. The media content identification information maycomprise a name/title 744 of the media content, an episodeidentification 745, and/or an image 746 (e.g., show/movie logo)corresponding to the media content. The media content options 742 mayalso comprise a plot description 248 of the corresponding media contentoptions 742. Although not shown, the media content identificationinformation can also comprise an indication of the source (e.g., whattelevision channel or what web-based source) of the corresponding mediacontent option 742. In some embodiments, the smaller the size of a mediacontent option 742, the less information may be displayed for it. Forexample, less relevant media content options 742 may omit an image 746and a plot description 748. It is contemplated that other informationand configurations are also within the scope of the present disclosure.

In some embodiments, the user can select one of the media contentoptions 742 via the interactive programming guide 730 on the secondmedia content device 140. In response to the user's selection of themedia content option 742 via the interactive programming guide 730 onthe second media content device 140, the media content corresponding tothe selected media content option 742 can be caused to be displayed onthe first media content device 120. Additionally, one or morecorresponding profiles 116 may be updated based on the selection of themedia content option 742.

In some embodiments, the user can view media content category options732 and/or media content options 742 for future time periods. Forexample, as seen in FIG. 7C, the user can navigate ahead to a differenttime period 734 (e.g., 9:00 pm) to view recommendations that have beendetermined for that time period 734. The user can use hand gestures(e.g., a swiping motion) to navigate to other time periods. Otherconfigurations and methods of navigation are also within the scope ofthe present disclosure.

Furthermore, the user can change the media content options 742 that aredisplayed for a particular time period using any of the featuresdiscussed herein. For example, drawers or other graphical user interfaceelements can be used to provide selectable options for the user. Theuser can then configure the interactive programming guide 730 as he orshe sees fit. The recommendation module 12 can then use thesecustomization indications provided by the user in determining subsequentcategories and media content to recommend.

In some embodiments, a media content source menu 720 may be displayed.The media content source menu 720 may comprise selectable media contentsource options 722 from which the user can select to filter options forthe interactive programming guide 730.

FIG. 8 is a flowchart illustrating a method 800 of providing aninteractive programming guide on a second media content device, inaccordance with an example embodiment. The operations of method 800 maybe performed by a system or modules of a system (e.g., interactiveprogramming guide system 100 or recommendation module 112 in FIG. 1). Atoperation 810, a plurality of relevant media content can be determined,based on a profile 116 of a user, for a first period of time 734 from aplurality of available media content that are available to be viewedduring the first period of time 734. At operation 820, an interactiveprogramming guide 730 can be caused to be displayed on a second mediacontent device 140. The interactive programming guide 730 may compriseidentifications of the relevant media content for the first period oftime 734. At operation 830, a user selection of one of theidentifications of relevant media content can be received via theinteractive programming guide 730. At operation 840, media contentcorresponding to the selected identification of relevant media contentcan be caused to be displayed on the first media content device 120 inresponse to receiving the user selection of the identification ofrelevant media content. At operation 850, one or more profiles 116 ofthe user can be updated based on the user selection of theidentification of relevant media content. It is contemplated that theoperations of method 800 may incorporate any of the other featuresdisclosed herein.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A hardware module is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client, or server computersystem) or one or more hardware modules of a computer system (e.g., aprocessor or a group of processors) may be configured by software (e.g.,an application or application portion) as a hardware module thatoperates to perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field-programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarilyconfigured (e.g., programmed) to operate in a certain manner and/or toperform certain operations described herein. Considering embodiments inwhich hardware modules are temporarily configured (e.g., programmed),each of the hardware modules need not be configured or instantiated atany one instance in time. For example, where the hardware modulescomprise a general-purpose processor configured using software, thegeneral-purpose processor may be configured as respective differenthardware modules at different times. Software may accordingly configurea processor, for example, to constitute a particular hardware module atone instance of time and to constitute a different hardware module at adifferent instance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multipleof such hardware modules exist contemporaneously, communications may beachieved through signal transmission (e.g., over appropriate circuitsand buses) that connect the hardware modules. In embodiments in whichmultiple hardware modules are configured or instantiated at differenttimes, communications between such hardware modules may be achieved, forexample, through the storage and retrieval of information in memorystructures to which the multiple hardware modules have access. Forexample, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors, not onlyresiding within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork and via one or more appropriate interfaces (e.g., APIs).

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,e.g., a computer program tangibly embodied in an information carrier,e.g., in a machine-readable medium for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry(e.g., a FPGA or an ASIC).

A computing system can include clients and servers. A client and serverare generally remote from each other and typically interact through acommunication network. The relationship of client and server arises byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other. In embodimentsdeploying a programmable computing system, it will be appreciated thatboth hardware and software architectures merit consideration.Specifically, it will be appreciated that the choice of whether toimplement certain functionality in permanently configured hardware(e.g., an ASIC), in temporarily configured hardware (e.g., a combinationof software and a programmable processor), or a combination ofpermanently and temporarily configured hardware may be a design choice.Below are set out hardware (e.g., machine) and software architecturesthat may be deployed, in various example embodiments.

FIG. 9 is a block diagram of a machine in the example form of a computersystem 900 within which instructions 924 for causing the machine toperform any one or more of the methodologies discussed herein may beexecuted, in accordance with an example embodiment. In alternativeembodiments, the machine operates as a standalone device or may beconnected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in a server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 900 includes a processor 902 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 904 and a static memory 906, which communicate witheach other via a bus 908. The computer system 900 may further include avideo display unit 910 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). The computer system 900 also includes analphanumeric input device 912 (e.g., a keyboard), a user interface (UI)navigation (or cursor control) device 914 (e.g., a mouse), a disk driveunit 916, a signal generation device 918 (e.g., a speaker) and a networkinterface device 920.

The disk drive unit 916 includes a machine-readable medium 922 on whichis stored one or more sets of data structures and instructions 924(e.g., software) embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 924 mayalso reside, completely or at least partially, within the main memory904 and/or within the processor 902 during execution thereof by thecomputer system 900, the main memory 904 and the processor 902 alsoconstituting machine-readable media. The instructions 924 may alsoreside, completely or at least partially, within the static memory 906.

While the machine-readable medium 922 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions 924 or data structures. The term “machine-readablemedium” shall also be taken to include any tangible medium that iscapable of storing, encoding or carrying instructions for execution bythe machine and that cause the machine to perform any one or more of themethodologies of the present embodiments, or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including by way of example semiconductormemory devices (e.g., Erasable Programmable Read-Only Memory (EPROM),Electrically Erasable Programmable Read-Only Memory (EEPROM), and flashmemory devices); magnetic disks such as internal hard disks andremovable disks; magneto-optical disks; and compact disc-read-onlymemory (CD-ROM) and digital versatile disc (or digital video disc)read-only memory (DVD-ROM) disks.

The instructions 924 may further be transmitted or received over acommunications network 926 using a transmission medium. The instructions924 may be transmitted using the network interface device 920 and anyone of a number of well-known transfer protocols (e.g., HTTP). Examplesof communication networks include a LAN, a WAN, the Internet, mobiletelephone networks, POTS networks, and wireless data networks (e.g.,WiFi and WiMAX networks). The term “transmission medium” shall be takento include any intangible medium capable of storing, encoding, orcarrying instructions for execution by the machine, and includes digitalor analog communications signals or other intangible media to facilitatecommunication of such software.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the present disclosure. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Although specific embodiments have been illustrated and describedherein, it should be appreciated that any arrangement calculated toachieve the same purpose may be substituted for the specific embodimentsshown. This disclosure is intended to cover any and all adaptations orvariations of various embodiments. Combinations of the aboveembodiments, and other embodiments not specifically described herein,will be apparent to those of skill in the art upon reviewing the abovedescription.

What is claimed is:
 1. A computer-implemented method comprising:accessing a profile; determining, by a machine having a memory and atleast one processor, a personalized lineup based on the profile, thepersonalized lineup comprising a corresponding media contentidentification assigned to each one of a plurality of sequential timeslots, each media content identification identifying media content forthe corresponding time slot; causing a first interactive programmingguide to be displayed on a first media content device associated withthe profile, the first interactive programming guide comprising thepersonalized lineup; receiving, via the first interactive programmingguide, a request to assign a first different media contentidentification to a first one of the time slots, the receiving therequest to assign the first different media content identification tothe first one of the time slots comprising: receiving a user selectionof the first one of the time slots of the personalized lineup;determining a plurality of media content category options based on theprofile, each one of the plurality of media content category optionsidentifying a different category of media content; in response to thereceived user selection of the first one of the time slots, causing thedetermined plurality of media content category options to be displayedon the first media content device while maintaining the display of thefirst interactive programming guide on the first media content device;receiving a user selection of one of the media content category options;in response to the received user selection of the one of the mediacontent category options, determining a plurality of media contentoptions based on the profile; causing the plurality of media contentoptions to be displayed on the first media content device whilemaintaining the display of the first interactive programming guide andthe plurality of media content category options on the first mediacontent device; and receiving a user selection of one of the mediacontent options, the one of the media content options corresponding tothe first different media content identification; and modifying thefirst one of the time slots of the personalized lineup in response tothe request to assign the first different media content identificationto the first one of the time slots.
 2. The method of claim 1, whereinthe profile is associated with a user.
 3. The method of claim 1, whereinthe profile is associated with the first media content device.
 4. Themethod of claim 1, wherein modifying the personalized lineup comprises:assigning the first different media content identification to the firstone of the time slots.
 5. The method of claim 1, wherein the determiningthe plurality of media content category options is further based on theuser selection of the first one of the time slots.
 6. The method ofclaim 1, wherein the first media content device comprises one of atelevision, a laptop computer, a desktop computer, a tablet computer,and a smartphone.
 7. The method of claim 1, wherein the media contentcomprises video content scheduled for broadcast.
 8. The method of claim1, wherein the profile comprises a history of media content viewed by auser associated with the profile, and determining the plurality of mediacontent category options comprises determining the plurality of mediacontent category options based on the history of media content viewed bythe user.
 9. The method of claim 1, wherein the profile furthercomprises demographic information about the user.
 10. The method ofclaim 1, further comprising: determining, based on the profile, aplurality of relevant media content for a first period of time from aplurality of available media content that are available to be viewedduring the first period of time; and causing a second interactiveprogramming guide to be displayed on a second media content device,wherein the second interactive programming guide comprisesidentifications of the relevant media content for the first period oftime.
 11. The method of claim 2, further comprising: receiving anindication of the user viewing additional media content; updating theprofile of the user based on the indication of the user viewing theadditional media content; modifying the personalized lineup based on theupdated profile; and causing the modified personalized lineup to bedisplayed on the first media content device.
 12. The method of claim 7,wherein the video content comprises at least one of an episode of atelevision program and a non-episodic movie.
 13. The method of claim 10,further comprising determining a corresponding relevance measurement foreach one of the plurality of relevant media content based on theprofile, wherein causing the second interactive programming guide to bedisplayed comprises causing each one of the identifications of therelevant media content to be displayed having a corresponding size thathas a direct relationship with the corresponding relevance measurementof the corresponding relevant media content.
 14. The method of claim 10,further comprising: receiving, via the second interactive programmingguide on the second media content device, a user selection of one of theidentifications of relevant media content; and causing media contentcorresponding to the selected identification of relevant media contentto be displayed on the first media content device in response toreceiving the user selection of the identification of relevant mediacontent.
 15. The method of claim 10, further comprising: receiving, viathe second interactive programming guide on the second media contentdevice, a user selection of one of the identifications of relevant mediacontent; and updating the profile based on the user selection of theidentification of relevant media content.
 16. The method of claim 15,further comprising: receiving, via the second interactive programmingguide on the second media content device, a user request to viewidentifications of relevant media content for a second period of time;determining, based on the updated profile, a second plurality ofrelevant media content for the second period of time from a secondplurality of available media content that are available to be viewedduring the second period of time; and causing identifications of thesecond plurality of relevant media content for the second period of timeto be displayed on the second media content device.
 17. A systemcomprising: at least one processor; and a computer-readable mediumstoring executable instructions that cause at least one processor toperform operations comprising: accessing a profile; determining apersonalized lineup based on the profile, the personalized lineupcomprising a corresponding media content identification assigned to eachone of a plurality of sequential time slots, each media contentidentification identifying media content for the corresponding timeslot; causing a first interactive programming guide to be displayed on afirst media content device associated with the profile, the firstinteractive programming guide comprising the personalized lineup;receiving, via the first interactive programming guide, a request toassign a first different media content identification to a first one ofthe time slots, the receiving the request to assign the first differentmedia content identification to the first one of the time slotscomprising: receiving a user selection of the first one of the timeslots of the personalized lineup; determining a plurality of mediacontent category options based on the profile, each one of the pluralityof media content category options identifying a different category ofmedia content; in response to the received user selection of the firstone of the time slots, causing the determined plurality of media contentcategory options to be displayed on the first media content device whilemaintaining the display of the first interactive programming guide onthe first media content device; receiving a user selection of one of themedia content category options; in response to the received userselection of the one of the media content category options, determininga plurality of media content options based on the profile; causing theplurality of media content options to be displayed on the first mediacontent device while maintaining the display of the first interactiveprogramming guide and the plurality of media content category options onthe first media content device; and receiving a user selection of one ofthe media content options, the one of the media content optionscorresponding to the first different media content identification; andmodifying the first one of the time slots of the personalized lineup inresponse to the request to assign the first different media contentidentification to the first one of the time slots.
 18. The system ofclaim 17, wherein the profile is associated with a user and therecommendation module is further configured to: receive an indication ofthe user viewing additional media content; update the profile of theuser based on the indication of the user viewing the additional mediacontent; modify the personalized lineup based on the updated profile;and cause the modified personalized lineup to be displayed on the firstmedia content device.
 19. A non-transitory machine-readable storagedevice, tangibly embodying a set of instructions that causes at leastone processor to perform a set of operations comprising: accessing aprofile; determining a personalized lineup based on the profile, thepersonalized lineup comprising a corresponding media contentidentification assigned to each one of a plurality of sequential timeslots, each media content identification identifying media content forthe corresponding time slot; causing a first interactive programmingguide to be displayed on a first media content device associated withthe profile, the first interactive programming guide comprising thepersonalized lineup; receiving, via the first interactive programmingguide, a request to assign a first different media contentidentification to a first one of the time slots, the receiving therequest to assign the first different media content identification tothe first one of the time slots comprising: receiving a user selectionof the first one of the time slots of the personalized lineup;determining a plurality of media content category options based on theprofile, each one of the plurality of media content category optionsidentifying a different category of media content; in response to thereceived user selection of the first one of the time slots, causing thedetermined plurality of media content category options to be displayedon the first media content device while maintaining the display of thefirst interactive programming guide on the first media content device;receiving a user selection of one of the media content category options;in response to the received user selection of the one of the mediacontent category options, determining a plurality of media contentoptions based on the profile; causing the plurality of media contentoptions to be displayed on the first media content device whilemaintaining the display of the first interactive programming guide andthe plurality of media content category options on the first mediacontent device; and receiving a user selection of one of the mediacontent options, the one of the media content options corresponding tothe first different media content identification; and modifying thefirst one of the time slots of the personalized lineup in response tothe request to assign the first different media content identificationto the first one of the time slots.